package com.example.mrqin.myapplication.utils;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 * Created by Mrqin on 2018/3/15.
 */
public class NetworkUtil {
	/**
	 * 检测网络是否可用
	 * 
	 * @return
	 */
	public static boolean isNetworkConnected(Context context) {
		ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext()
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo ni = cm.getActiveNetworkInfo();
		return ni != null && ni.isConnectedOrConnecting();
	}

	/**
	 * 获取当前网络类型
	 * 
	 * @return 0：没有网络 1：WIFI网络 2：WAP网络 3：NET网络
	 */
	public static final int NETTYPE_WIFI = 0x01;
	public static final int NETTYPE_CMWAP = 0x02;
	public static final int NETTYPE_CMNET = 0x03;

	public static int getNetworkType(Context context) {
		int netType = 0;
		try {
			ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext()
					.getSystemService(Context.CONNECTIVITY_SERVICE);
			if (connectivityManager == null) {
				return netType;
			}
			NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
			if (networkInfo == null) {
				return netType;
			}
			int nType = networkInfo.getType();
			if (nType == ConnectivityManager.TYPE_MOBILE) {
				String extraInfo = networkInfo.getExtraInfo();
				if (extraInfo != null && !extraInfo.equals("")) {
					if (extraInfo.toLowerCase().equals("cmnet")) {
						netType = NETTYPE_CMNET;
					} else {
						netType = NETTYPE_CMWAP;
					}
				}
			} else if (nType == ConnectivityManager.TYPE_WIFI) {
				netType = NETTYPE_WIFI;
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return netType;
	}
}
